# 协程 **************************************
# IO 操作多的时候  高并发处理   时使用
# greenlet  <第三方模块>  pip install 包名  =>安装   （强制 python - m ------）
# greenlet 由C语言编写的协程模块
# 通过 switch()实现任意函数的切换
# 属于手动切换，遇到IO操作，层序会阻塞，而不会进行自动切换

from greenlet import greenlet

import time


def sing():
    print("sing")
    time.sleep(2)
    print("sing over")


def dance():
    print("dance")
    time.sleep(2)
    print("dance over")


if __name__ == "__main__":
    g0 = greenlet(sing)
    g1 = greenlet(dance)

    g0.switch()
    g1.switch()
